Point of sale (POS) equipment typically encompasses equipment which facilitates sales and which is physically located where the sales are made. For example, POS equipment may include cash registers that have some intelligence and a remote server to which the cash registers may be coupled. The POS equipment may be coupled to other specialized devices. These specialized devices include keyboards, scanners, scales, or other equipment usually residing in the same physical area as the POS equipment. For example, a cash register may be coupled to a scanner and a scale.
The POS equipment executes applications which use the specialized devices. For example, an application on the POS equipment may require input from the scale in order to calculate a price for an item that is sold based on the item's weight. Typically, drivers which also reside on the POS equipment control the specialized devices. In order to use the specialized device, the application communicates with the driver that controls the specialized device.
Typically, POS equipment has at most a limited environment for the development of software. Consequently, the applications run on POS equipment are generally developed on a separate development system by a software developer. Once development is complete, the application can be adequately run on the POS system.
During conventional development of the application, the developer must ensure that the application will be capable of utilizing the specialized devices. However, the specialized devices are coupled to the POS equipment, rather than the development system. Thus, the developer must have access to POS equipment. Typically, this is accomplished by placing POS equipment in a lab, where many developers have access to the POS equipment and, therefore, the specialized devices.
Although placing the POS equipment in a lab allows applications to be tested, conventional development of the applications is difficult and time consuming. In order to test an application that has been written, a developer copies a portion of the application that has been written from the development system, takes the application to the lab, and downloads the application to the POS equipment. If the application does not function properly, the developer must change the code and repeat the entire process for the new version of the application. This is very time consuming. In addition, the developer will still be limited to working in proximity to the POS equipment because the developer must have access to the POS equipment for testing the application during development. This also makes the development process slower and more difficult. Although each developer can be provided with separate POS equipment, this may be expensive for the developer's employer.
Portions of code designed to account for the absence of the specialized devices on the development system can be added to the application. This allows the application with the additional code to be tested on the development system. However, the application must subsequently be tested on the test system without these additional pieces of code once testing on the development system is completed. This subsequent testing shares many of the same problems as testing the application solely on the test equipment. Thus, the development of applications for POS equipment using conventional mechanisms is inefficient and time consuming.
Accordingly, what is needed is a system and method for facilitating the development of applications to be used on POS equipment. The present invention addresses such a need.